Option Explicit
Sub J_Sample009()
    Dim myCBar    As CommandBar
    Dim myCbarCnt As CommandBarControl
    Dim i         As Long
    Dim myRng     As Range
    Cells.Clear						'xs檺M
    Set myRng = Cells(1, 1)
    myRng.Value = 1
    For Each myCBar In Application.CommandBars
        For Each myCbarCnt In myCBar.Controls
            With myCbarCnt
            myRng.Value = myRng.Value + 1
            Cells(myRng.Value, 1).Resize(, 7).Value = _
                Array(myCBar.Index, myCBar.Name, myCBar.NameLocal, _
                myCBar.Type, .Caption, .ID, .Type)
            If .Type = 10 Then
                myRng.Value = myRng.Value - 1
                J_Sample009_1 myCbarCnt, 8, myRng
            End If
            End With
        Next
    Next
    ActiveSheet.UsedRange.EntireColumn.AutoFit
    Set myCBar = Nothing			'
    Set myCbarCnt = Nothing
End Sub

Sub J_Sample009_1(myCnt As CommandBarControl, _
			 myClm As Long, myCell As Range)
    Dim myChdCnt As CommandBarControl
    For Each myChdCnt In myCnt.Controls
        With myChdCnt
            myCell.Value = myCell.Value + 1
            Cells(myCell.Value, myClm).Resize(, 3).Value = _
            Array("'" & .Caption, .ID, .Type)
            If .Type = 10 Then
                myCell.Value = myCell.Value - 1
                J_Sample009_1 myChdCnt, myClm + 3, myCell
            End If
        End With
    Next
    Set myChdCnt = Nothing			'
End Sub
